HTTP পাইপলাইন হলো একটি গুরুত্বপূর্ণ ধারণা যা ASP.Net অ্যাপ্লিকেশনগুলিতে HTTP অনুরোধ (Request) এবং HTTP উত্তর (Response) প্রক্রিয়া করে। এটি বিভিন্ন middleware কম্পোনেন্টের মাধ্যমে কাজ করে, যা অনুরোধটি প্রক্রিয়া করার এবং সঠিক উত্তর প্রদান করার জন্য অ্যাপ্লিকেশনকে স্টেপ বাই স্টেপ গাইড করে।
ASP.Net Core এর HTTP পাইপলাইন অত্যন্ত কাস্টমাইজযোগ্য এবং এর মধ্যে বিভিন্ন middleware এর মাধ্যমে অনুরোধ এবং উত্তর প্রক্রিয়া সম্পন্ন হয়।
HTTP পাইপলাইন একটি অনুরোধ এবং তার প্রক্রিয়াজাতকরণ চলাকালীন বিভিন্ন middleware এর মাধ্যমে ধাপে ধাপে প্রবাহিত হয়। প্রতিটি middleware একে একে HTTP অনুরোধের উপর কাজ করে এবং অবশেষে একটি response তৈরি করে।
এই পাইপলাইনের কাজ হল:
Middleware হলো সফটওয়্যারের এমন একটি কম্পোনেন্ট যা HTTP অনুরোধ বা রেসপন্সে এক বা একাধিক প্রক্রিয়া পরিচালনা করে। এটি সাধারণত অ্যাপ্লিকেশনের request-response pipeline এর অংশ হিসেবে কাজ করে। ASP.Net Core এর HTTP পাইপলাইনে middleware কম্পোনেন্টগুলো অনুরোধ প্রক্রিয়া শুরু করার আগে বা রেসপন্স প্রক্রিয়া শেষ করার পরে কাজ করে।
ASP.Net Core অ্যাপ্লিকেশনে HTTP পাইপলাইন কনফিগারেশন Startup.cs ফাইলে করা হয়, যেখানে ConfigureServices এবং Configure মেথড দুটি গুরুত্বপূর্ণ ভূমিকা পালন করে।
এটি অ্যাপ্লিকেশনের বিভিন্ন সেবা (Services) কনফিগার করার জন্য ব্যবহৃত হয়। এখানে বিভিন্ন পরিষেবা যেমন Entity Framework, Authentication, Authorization ইত্যাদি নিবন্ধিত হয়।
public void ConfigureServices(IServiceCollection services)
{
// সার্ভিস নিবন্ধন করা হচ্ছে
services.AddRouting();
services.AddControllersWithViews();
}
এখানে HTTP পাইপলাইনে middleware গুলি একে একে সন্নিবেশ করা হয়। Configure মেথডের মধ্যে middleware পদ্ধতির মাধ্যমে HTTP অনুরোধের প্রক্রিয়া তৈরি করা হয়।
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage(); // ত্রুটি পৃষ্ঠা
}
else
{
app.UseExceptionHandler("/Home/Error"); // প্রোডাকশন ত্রুটি পৃষ্ঠা
app.UseHsts(); // HTTP Strict Transport Security (HSTS)
}
app.UseHttpsRedirection(); // HTTPS রিডাইরেকশন
app.UseStaticFiles(); // Static files (CSS, JS, ইত্যাদি)
app.UseRouting(); // রাউটিং middleware
app.UseAuthorization(); // অথোরাইজেশন middleware
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
ASP.Net Core এ আপনি নিজের custom middleware তৈরি করতে পারেন যা HTTP অনুরোধ এবং রেসপন্স প্রক্রিয়ার মধ্যে থাকে। এটি করতে middleware class তৈরি করে সেটিকে HTTP পাইপলাইনে যোগ করতে হবে।
public class CustomMiddleware
{
private readonly RequestDelegate _next;
public CustomMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
// অনুরোধ আগে কিছু কাজ করুন (যেমন লগিং)
Console.WriteLine("Request received");
// পরবর্তী middleware এ অনুরোধ প্রক্রিয়া করতে পাঠান
await _next(context);
// উত্তর পরে কিছু কাজ করুন (যেমন লগিং)
Console.WriteLine("Response sent");
}
}
এটি HTTP পাইপলাইনে যুক্ত করতে Startup.cs ফাইলে Configure মেথডে app.UseMiddleware<CustomMiddleware>();
ব্যবহার করুন।
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseMiddleware<CustomMiddleware>();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
ASP.Net Core এর HTTP পাইপলাইন একটি শক্তিশালী এবং কাস্টমাইজযোগ্য প্রক্রিয়া, যা middleware এর মাধ্যমে HTTP অনুরোধ এবং রেসপন্স প্রক্রিয়া পরিচালনা করে। এটি বিভিন্ন স্টেপে অনুরোধ প্রক্রিয়া করার সুযোগ দেয়, যেমন লগিং, অথেন্টিকেশন, রাউটিং, অ্যাক্সেস কন্ট্রোল, এবং স্ট্যাটিক ফাইল পরিবেশন। আপনি HTTP পাইপলাইনে কাস্টম middleware যুক্ত করতে পারেন, যা আপনাকে আপনার অ্যাপ্লিকেশনকে আরও শক্তিশালী এবং নমনীয় করতে সাহায্য করবে।
Read more